main(){
  // List的常用属性有：length、reversed、isEmpty、isNotEmpty
  // List arr = [1,2,3];
  // print(arr.length);//获取长度
  // print(arr.isEmpty);//判断是否为空数组
  // print(arr.isNotEmpty);//判断是否不空数组
  // print(arr.reversed);//翻转数组
  // arr = arr.reversed.toList();//获取翻转后的数组需要调用toList函数
  // print(arr);

  // List中常用的操作数组的方法
   List arr = [1,2,3,3,2,1];
  //  arr.add(4);//在数组尾部添加一个元素
  //  arr.addAll([5,6]);//在数组尾部添加一个数组拼接在一起
  //  arr.indexOf(6);//查找数组元素，如果有则返回该元素的下标,找不到返回-1
  //  arr.remove(1);//传入一个指定的值，如果该值在数组中可以找到就删除数组中的该元素，否则无效；
  // arr.removeAt(0);//传入一个下标，如果该下标的值在数组中可以找到就删除数组中的该元素，否则无效；
  // arr.fillRange(0,1,'aaa');//修改元素内容，第一个参数是要从哪个下标开始，第二个参数是结束的下标(不包含结束的下标)，第三个是要修改的值
  // arr.insert(0, 0);//在指定下标插入指定内容；第一个参数为下标，第二个参数为要插入的值
  // arr.insertAll(2,[4,5]);////在指定下标插入指定内容；第一个参数为下标，第二个参数是数组---插入后会被合并为一个数组
  // toList  其他类型转换为数组类型
  // arr.join(',');//数组转换为字符串---不会改变原数组
  // String str = '1-2-3';
  // List array = str.split('-');//字符串转换为数组
  // arr.forEach((el) { //遍历数组的方法
  //   print(el);
  // });
  // var array = arr.map((e){ //加工数组
  //   return e*2;
  // });
  // print(array.toList());

  // var array = arr.where((e){ //过滤数组
  //   return e<3;
  // });
  // print(array.toList());

  // var f = arr.any((e){ //只有有一项满足则返回true
  //   return e<3;
  // });
  // print(f);

  // var f = arr.every((e){ //全部满足才返回true
  //   return e>0;
  // });
  // print(f);

  // var array = new Set(); //数组去重操作
  // array.addAll(arr);
  // print(array.toList());

  // var obj = {'name': '长沙','age':20};
  // print(obj.keys.toList());//对象的属性转为数组
  // print(obj.values.toList());//对象的值转为数组
  // print(obj.isEmpty);//判断对象是否为空
  // print(obj.isNotEmpty);//判断对象是否不为空
  // obj.addAll({'sex': 'guy'});//给对象添加一个元素
  // obj.remove('name');//删除对象的某一个属性
  // obj.containsKey('name');//查找对象内是否有指定的属性名，有则true反之false containsValue同理；
  // obj.forEach((k, el) { //forEach也可以遍历对象，k是属性名，el是属性值
  //   print('$k,$el');
  // });
}